package org.company.ci.servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.company.ci.domain.RelacionProductoProveedor;
import org.company.ci.services.RelacionProductoProveedorService;
import org.company.ci.services.ServiceFinder;

/**
 * Servlet encargado de cargar los productos de un proveedor seleccionado.
 */
public class CargarProductosProveedorServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private ServletConfig config;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public CargarProductosProveedorServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see Servlet#init(ServletConfig)
	 */
	public void init(ServletConfig config) throws ServletException {
		this.config = config;
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// llamado del servicio que maneja las relaciones productos vs proveedores.
		RelacionProductoProveedorService relacionService = (RelacionProductoProveedorService)
		ServiceFinder.getBean(config.getServletContext(),"relacionProductoProveedorService");
		// se obtiene el id del proveedor seleccionado
		String idProveedor = request.getParameter("id_proveedor");
		
		
		ArrayList<RelacionProductoProveedor> relaciones = new ArrayList<RelacionProductoProveedor>();
		// se consulta la lista de productos del proveedor.
		try {
			relaciones = relacionService.getListRelacionesProv(new Long(idProveedor));
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		PrintWriter pw = response.getWriter();
		// por cada producto se crea una etiqueta option que sera incrustada mediante ajax.
		for (RelacionProductoProveedor rel : relaciones) {
			
			String option = "<option value='"+rel.getProducto().getIdProducto()+"'>"
			+rel.getProducto().getDescripcion()+"</option>";
			pw.println(option);
		}
		
	}

}
